Welcome to Django!

2.9 路由层总结(路由分发补充)

向下匹配时,URL的前缀会去掉后,再交给下一级做URL匹配,因些下一层就不需要重复定义前缀了

理论是可以无限套娃(实际项目常用的是2-3层)

路由层总结:

两个路由匹配函数:path(),re_path(),区别是他们的第一个参数是否支持正则表达式

函数path(),可以使用路径转换器,默认提供5个路径转换器,转换器中定义的参数名需要和视图函数中的位置参数名保持一致

函数re_path(),存在有名分组和无名分组, 有名分组时参数名需要和视图函数的位置参数名保持一致,无名分组时不需要

路由冲突,解决办法:

1、在项目中创建多个app,一个app处理一个类型的任务

python manage.py startapp hello

2、路由分发使用include()。

如path(“hello/”,include(“hello.urls))

非常重要,路由匹配时按照urlpatterns中定义的顺序从上往下,只要匹配到一个, 就立即执行对应的视图函数,并把request对象作为第一个位置参数,如果有其他参数,依次传递给视图函数。